flip fix
flip関数
と
fix関数
の合成関数
型
flip fix :: b -> ((b -> c) -> b -> c) -> c
ちなみに
flip :: (a -> b -> c) -> (b -> a -> c)
fix :: (a -> a) -> a
この
a
を
(b -> c)
と置き換えて、
((b -> c) -> b -> c) -> b -> c
とし
これの第1引数と第2引数を入れ替えると、
flip fix
の型になる
参考
Haskellのループ処理は flip fix でだいたい書けそう - Qiita